package com.qike.duola.utils.voice;

import java.util.*;

import static com.qike.duola.utils.voice.VoiceCallMain.recordLinkAPI;

/**
 * @Author: Eric.zhou
 * @Date: 2020/11/13 14:21
 */
public final class DuolaCall {

    // 接口返回值
    private static String status = "";
    private static String resultcode = "";
    private static String resultdesc = "";
    // 语音通知接口返回值
    private static String sessionId = "";
    // 语音通知业务类实体
    public static VoiceNotify callNotifyAPI = new VoiceNotify();

    // 调用接口成功标识
    private static final String success = "200";

    /**
     * 发货
     *
     * @return
     */
    public static void sendGoodsCall(String phone,String carNo,String projectName,String distance) throws Exception {
        // TODO 程序前端要求发起语音通知呼叫,首先使用getplayInfo构造构造playInfoList参数,然后调用doCallNotify方法.
        // 以下代码仅供调试使用,实际开发时请删除
        // 构造playInfoList参数
        List<Map<String, Object>> playInfoList = new ArrayList<Map<String, Object>>();
        // 使用音频文件作为第一段放音内容
//        playInfoList.add(callNotifyAPI.getplayInfo("test.wav"));
        // 使用v2.0版本接口的语音通知模板作为第二段放音内容
        String templateId = "09aa759ebb334ecf84ba5f4cb040f830";
        List<String> templateParas = new ArrayList<String>();
        templateParas.add(carNo);
        templateParas.add(projectName);
        templateParas.add(distance);
        playInfoList.add(callNotifyAPI.getplayInfo(templateId, templateParas));
        // 调用doCallNotify方法
        VoiceNotifyMain.doCallNotify("+8602131354202", phone, playInfoList);
        if (status.indexOf(success) != -1) {
            System.out.println(status);
            System.out.println(resultcode + " " + resultdesc);
            System.out.println("The session id is: " + sessionId);
        }

        // TODO 需要接收状态和话单时,请参考"呼叫状态和话单通知API"接口实现状态通知和话单的接收和解析
        // HostingVoiceEventDemoImpl
    }


    /**
     * 装料
     *
     * @return
     */
    public static void loadGoods(String phone,String carNo,String plan,String lastCarNo) throws Exception {
        // TODO 程序前端要求发起语音通知呼叫,首先使用getplayInfo构造构造playInfoList参数,然后调用doCallNotify方法.
        // 以下代码仅供调试使用,实际开发时请删除
        // 构造playInfoList参数
        List<Map<String, Object>> playInfoList = new ArrayList<Map<String, Object>>();
        // 使用音频文件作为第一段放音内容
//        playInfoList.add(callNotifyAPI.getplayInfo("test.wav"));
        // 使用v2.0版本接口的语音通知模板作为第二段放音内容
        String templateId = "d654845a725940579d5031e523c4637e";
        List<String> templateParas = new ArrayList<String>();
        templateParas.add(carNo);
        templateParas.add(plan);
        templateParas.add(lastCarNo);
        playInfoList.add(callNotifyAPI.getplayInfo(templateId, templateParas));
        // 调用doCallNotify方法
        VoiceNotifyMain.doCallNotify("+8602131354202", phone, playInfoList);
        if (status.indexOf(success) != -1) {
            System.out.println(status);
            System.out.println(resultcode + " " + resultdesc);
            System.out.println("The session id is: " + sessionId);
        }

        // TODO 需要接收状态和话单时,请参考"呼叫状态和话单通知API"接口实现状态通知和话单的接收和解析
        // HostingVoiceEventDemoImpl
    }
}
